The current industry practice is for process specifications or steps to be equipment specific. The present semiconductor industry practice specifies that changes to be made to the wafer are in terms of the machine settings required to achieve the desired change in the wafer state or process. This requirement creates a processing specification that is very specific to the equipment that is to perform the process.
Computer programming utilizes Object-Oriented Databases (OODB). In an object-oriented system, data is stored in self-contained programmatic structures that also contain procedures for manipulating the data. The procedures need not reside in the same area of memory as the data or need not be routines specifying the procedures to be replicated in each object. Rather, the object may comprise only a set of pointers to data and procedural files that can be shared by many objects. Object-oriented programming systems may be employed as database management systems which are capable of operating upon a large database, and which are expandable and adaptable. In an Object-Oriented Database (OODB) Management System, the data in the database is organized and encapsulated in terms of objects with the instances of the objects being the data in the database. Similarly, the database manager may be organized as a set of objects with the database management operations being performed by sending messages from one object to another. The target object performs the requested actions on its attributes using its method.
In an object-oriented computing system, work is accomplished by sending action request messages to an object which contains (encapsulates) data. The object will perform the requested action on the data according to its predefined methods. The requestor of the action does not know what the actual data looks like or how the object manipulates it. The objects class defines the types and meanings of the data and the action requests messages that the object will honor. The individual objects containing data are called instances of the class. Classes generally relate to real-world things.
Referring to FIG. 3, a schematic block diagram of an OODB Management System (400) is illustrated. The system includes a data processor (410) which may be a mainframe computer, a mini-computer or a personal computer, a volatile data storage device (430), typically RAM for providing the working storage for active data, a display terminal (450) for interfacing the data processor with a user and intermediate results and a non-volatile data storage device (440). The object-oriented program is in the form of an OODB Manager.
In order to control a machine, a sequence of steps is generated. FIG. 4 illustrates a machine (600), a machine processor (610) connected to the machine (600) to input the sequence of steps (620). The sequence of steps (620) is read by the machine processor (610); the machine processor (610) translates the steps (620) into instructions for the machine (600). The instructions control the machine in such a manner that the machine operates to produce the product which the machine was designed to produce. For example, if a wafer is to be processed by the machine, the steps should define settings for the machine. These steps should be available to the machine when the wafer is to be produced, and, additionally, these steps need to be retained so that identical or substantially identical wafers can be produced at a later time. One way of generating this sequence would be to physically and individually code the sequence of steps and place these steps in a memory for access by the machine. Such a step generation process is time consuming in that there are a limited number of basic steps to be used in the sequence, such as etch, deposition or clean to produce the wafer, and such a step generation process is labor intensive. However, these limited number of steps are modified or individualized by the quantity of material used to implement these steps, the amount of time that these quantities of materials are applied to the wafer, or other variables to obtain the results of the step. As a consequence, these relatively small number of steps which are unique to a particular machine are applied to the above-described variables to result in a seemingly unlimited number of possible steps.
As the specification of the wafers change as a result of a different requirement, these steps are required to be changed or updated; the process engineer or product engineer is faced with another problem of identifying which particular steps correspond to a particular effect desired on the wafer. To aid in this change of the wafer specification, it would be helpful if conceptually, the production of a wafer could be viewed at various levels of wafer modification. For example, at higher level but not necessarily the highest level, the wafer modification or processing could be simply viewed as the production of the wafer; at a lower level, the wafer modification could be viewed as depositioning a layer or etching a layer on the wafer. At yet a lower level, the layer could be viewed as a specific portion of the layer to be changed.
Depending on the particular level the wafer modification or processing that is being viewed or analyzed, the number of the steps and the actual function of these steps may vary in accordance with that level.
The process engineer, at different times during the modification of the wafer, may desire to change the steps corresponding to a particular level. For instance, the process engineer may desire to change the thickness for the layer, or the process engineer may desire to deposit the same layer with a different material. One can readily see that a need exists for a specification that defines the steps in terms of the various levels where each of the levels define a very specific sequence of steps but affect the modification of the wafer differently.
However, as discussed above, each of the steps must be defined by unique values or parameters to achieve the goal of each step. These parameters are identified by names for example, and these parameters are generally common to and usable by all of the steps so as to provide the necessary uniqueness of each of the steps. However, common parameters cannot provide the steps with different values so that the step are unique.
Current factories or machines employ programming techniques that fail to solve the problems of providing a sequence including unique steps for the equipment. By using the same parameters in a given sequence of steps, the value of the parameter for one step will be the same as the value of the parameter for another step. One attempt to solve the above-mentioned problem is the use of a single global environment which is the mapping of variables to values. These values are referenced to a sequence of bits whose meaning is interpreted by the user, for example, a location in memory. These common parameters may not satisfy the need to uniquely define the steps by different parameters. The use of the global environment results in the variable having a single value and being a single memory location for all of the steps in the sequence.
This is an unacceptable solution because the process engineer may desire to repeat a previously-used step, but the process engineer is prevented from repeating the step by the fact that the variable of the step may require a different value. For example, Step 10 of the sequence may require a thickness of 10 while Step 200 of the sequence may require a thickness of 60.
An alternative to using common variables is using a different variable name for each step. If different variable names are used for the different steps, then the advantage of reusability of specific steps for a different aspects of the same sequence is lost, since each step must be individually coded with the different names or parameters to provide the different values required for the different steps. This solution becomes unworkable as the number of different steps becomes large, for example, how many variations exist for name thickness so that the user recognizes the variable name as being associated with thickness.
If the steps must be individually coded, the advantage of reusing these steps in a different part of the sequence is lost. Although the above description has employed a wafer and a wafer factory, the scope of the present invention is applicable to all types of equipment in any type of factory, as FIG. 4 illustrates.